home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1996 #5 / Amiga Plus CD - 1996 - No. 5.iso / pd / netz / amirc / ops.amirx < prev    next >
Text File  |  1996-04-27  |  9KB  |  241 lines

  1. /* OPS.AMIRX -- AutoOP, AutoGreet and AutoKill  (Version 3.0) 28/04/96
  2. \\ written by Terminator (Terminator@cybercor.demon.co.uk) IRC: Terminatr
  3. // Please mail any bug reports/comments to the above address with a subject
  4. \\ headder of OPS.AMIRX.
  5. // ** What do I do with the file ** -----» Do this...
  6. \\ Put this script in PROGDIR:rexx/ and add this to your join arexx event
  7. // Ops.Amirx %p
  8. \\
  9. // Many thanks to all the people that have helped me with this and other
  10. \\ arexx programs :)
  11. //
  12. \\ Many thanks to Pulse (Richard Ulrich) for beta testing, and for all others
  13. // who have sent me their ideas.  Keep them coming!
  14. \\
  15. */
  16.  
  17.  
  18. /* Config files */
  19.  
  20. OPS_LIST = "DH1:ops" /* This is the file which contains the users which
  21.                         should become OPs on joining a channel */
  22.  
  23. GREETZ_LIST = "DH1:greetz" /* This is the file which contains the users which
  24.                               should be GREETED on joining a channel */
  25.  
  26. KILL_LIST ="DH1:Kill"  /* This file contains the users who should be KILLED
  27.                           (Kicked & Banned) on joining a channel. */
  28.  
  29.  
  30. /* Notify Modes */              
  31.  
  32.  
  33. GREET_NOTIFY = "YES" /* This will notify you upon your GREETING of someone*/
  34.  
  35. OP_NOTIFY = "YES" /* This will notify you when you OP someone automatically */
  36.  
  37. KILL_NOTIFY = "YES" /* This will notify you when you KILL someone */
  38.  
  39.  
  40. /* This part parses all data into variables to be used by the rest of the script */
  41.  
  42. OPTIONS RESULTS
  43. PARSE ARG SENDER MSGTYPE RECEIVER MESSAGE
  44. PARSE UPPER VAR SENDER '!'LOGINAME'@'BLANK'.'COMPANY
  45. PARSE UPPER VAR SENDER '@'USER_HOST
  46. PARSE UPPER VAR SENDER ':'CHECKNICK'!'
  47. PARSE VAR SENDER ':'USER'!'
  48. PARSE VAR RECEIVER ':'CHANNEL
  49. PARSE UPPER VAR CHANNEL CHANUP
  50.  
  51. /* Main Script Starts Here */
  52.  
  53. "getmynick"
  54. my_nick=RESULT
  55.  
  56. count = 0
  57. namevalid = 0
  58.  
  59. do while namevalid = 0
  60.    getuser count
  61.    nick=RESULT
  62.    if nick = my_nick then do
  63.       getuserstate count
  64.       opstat=rc
  65.       if rc = 1 then do
  66.       mystat="op"
  67.       end
  68.    namevalid=1
  69.    end
  70.    count = count + 1
  71. end
  72.  
  73.  
  74. /* OPS SECTION */
  75.  
  76. open(temp, Ops_List, 'R')
  77.  
  78. DO UNTIL EOF(temp)
  79.  ops_this_line = ReadLn(temp)
  80.  
  81.  PARSE UPPER VAR ops_this_line READNICK':'BOD'@'HOST'.'PROVIDER'#'
  82.  PARSE UPPER VAR ops_this_line '@'READ_HOST'#'CHAN1'#'CHAN2'#'CHAN3
  83.  
  84.  CHAN1 = "#"CHAN1
  85.  CHAN2 = "#"CHAN2
  86.  CHAN3 = "#"CHAN3 
  87.  
  88.  IF MYSTAT="op" then do
  89.  
  90.  IF READNICK="*" & BOD="*" & HOST="*" & PROVIDER="*" then call OPME                                                 
  91.  IF READNICK="*" & BOD="*" & HOST="*" & PROVIDER=COMPANY then call OPME
  92.  IF READNICK="*" & BOD="*" & HOST=BLANK & PROVIDER="*" then call OPME
  93.  IF READNICK="*" & BOD=LOGINAME & HOST="*" & PROVIDER="*" then call OPME
  94.  IF READNICK=CHECKNICK & BOD="*" & HOST="*" & PROVIDER="*" then call OPME
  95.  IF READNICK="*" & BOD="*" & READ_HOST=USER_HOST & PROVIDER=COMPANY then call OPME
  96.  IF READNICK="*" & BOD=LOGINAME & HOST="*" & PROVIDER=COMPANY then call OPME
  97.  IF READNICK=CHECKNICK & BOD="*" & HOST="*" & PROVIDER=COMPANY then call OPME
  98.  IF READNICK="*" & BOD=LOGINAME & READ_HOST=USER_HOST & PROVIDER="*" then call OPME
  99.  IF READNICK=CHECKNICK & BOD=LOGINAME & HOST="*" & PROVIDER="*" then call OPME
  100.  IF READNICK=CHECKNICK & BOD="*" & READ_HOST=USER_HOST & PROVIDER="*" then call OPME
  101.  IF READNICK=CHECKNICK & BOD=LOGINAME & READ_HOST=USER_HOST & PROVIDER="*" then call OPME
  102.  IF READNICK=CHECKNICK & BOD=LOGINAME & HOST="*" & PROVIDER=COMPANY then call OPME
  103.  IF READNICK=CHECKNICK & BOD="*" & READ_HOST=USER_HOST & PROVIDER=COMPANY then call OPME
  104.  IF READNICK="*" & BOD=LOGINAME & READ_HOST=USER_HOST & PROVIDER=COMPANY then call OPME
  105.  IF READNICK=CHECKNICK & BOD=LOGINAME & READ_HOST=USER_HOST & PROVIDER=COMPANY then call OPME
  106.  
  107.  END
  108.  
  109. END
  110. CLOSE(temp)
  111.  
  112.  
  113. /* KILL SECTION */
  114.  
  115. open(temp, KILL_LIST, 'R')
  116.     DO UNTIL EOF(temp)
  117.     Kill_this_line = ReadLn(temp)
  118.  
  119. PARSE UPPER VAR Kill_this_line KREADNICK':'KBOD'@'KHOST'.'KPROVIDER'!'
  120. PARSE UPPER VAR Kill_this_line '@'KREAD_HOST'!'KILLTYPE'#'
  121. PARSE VAR Kill_this_line '#'KILL_MESSAGE
  122.  
  123.  
  124.  IF MYSTAT="op" then do
  125.  
  126.    IF KREADNICK="*" & KBOD="*" & KHOST="*" & KPROVIDER="*" then call KILLME 
  127.    IF KREADNICK="*" & KBOD="*" & KHOST="*" & KPROVIDER=COMPANY then call KILLME
  128.    IF KREADNICK="*" & KBOD="*" & KHOST=BLANK & KPROVIDER="*" then call KILLME
  129.    IF KREADNICK="*" & KBOD="*" & KREAD_HOST=USER_HOST & KPROVIDER=COMPANY then call KILLME
  130.    IF KREADNICK="*" & KBOD=LOGINAME & KHOST="*" & KPROVIDER="*" then call KILLME
  131.    IF KREADNICK="*" & KBOD=LOGINAME & KHOST="*" & KPROVIDER=COMPANY then call KILLME
  132.    IF KREADNICK="*" & KBOD=LOGINAME & KREAD_HOST=USER_HOST & KPROVIDER="*" then call KILLME
  133.    IF KREADNICK="*" & KBOD=LOGINAME & KREAD_HOST=USER_HOST & KPROVIDER=COMPANY then call KILLME
  134.    IF KREADNICK=CHECKNICK & KBOD="*" & KHOST="*" & KPROVIDER=COMPANY then call KILLME
  135.    IF KREADNICK=CHECKNICK & KBOD="*" & KHOST="*" & KPROVIDER="*" then call KILLME
  136.    IF KREADNICK=CHECKNICK & KBOD="*" & KREAD_HOST=USER_HOST & KPROVIDER=COMPANY then call KILLME
  137.    IF KREADNICK=CHECKNICK & KBOD="*" & KREAD_KHOST=USER_HOST & KPROVIDER="*" then call KILLME
  138.    IF KREADNICK=CHECKNICK & KBOD=LOGINAME & KHOST="*" & KPROVIDER="*" then call KILLME
  139.    IF KREADNICK=CHECKNICK & KBOD=LOGINAME & KREAD_HOST=USER_HOST & KPROVIDER="*" then call KILLME
  140.    IF KREADNICK=CHECKNICK & KBOD=LOGINAME & KHOST="*" & KPROVIDER=COMPANY then call KILLME
  141.    IF KREADNICK=CHECKNICK & KBOD=LOGINAME & KREAD_HOST=USER_HOST & KPROVIDER=COMPANY then call KILLME
  142.  
  143.  END
  144.  
  145. END
  146. CLOSE(temp)
  147.  
  148.  
  149. /* GREETZ SECTION */
  150.  
  151. open(temp, Greetz_List, 'R')
  152.     DO UNTIL EOF(temp)
  153.     Greetz_this_line = ReadLn(temp)
  154.  
  155. /* Let's check to see if it's Morning, Afternoon, or Night */
  156.  
  157. DATA = TIME()
  158.  
  159. If DATA > '00:00:00' & DATA < '11:59:59' then DATUM = "Mornin'"
  160. If DATA > '12:00:00' & DATA < '17:59:59' then DATUM = "Afternoon"
  161. If DATA > '18:00:00' & DATA < '23:59:59' then DATUM = "Evenin'"
  162.  
  163. /* These lines define ya greetz */
  164.  
  165. Greet.1 = "Hiya"   
  166. Greet.2 = "Yo!"
  167. Greet.3 = "G'day"
  168. Greet.4 = DATUM        /* This line handles the context greeting */
  169. Greet.5 = "Greetings"
  170. Greet.6 = "Hi"
  171. Greet.7 = "Re"
  172. Greet.8 = "Hello"
  173.     call RANDOM(,,TIME("S"))
  174.     picked = RANDOM(1,8)
  175.     GREETING = Greet.picked
  176.  
  177. PARSE UPPER VAR Greetz_this_line GREADNICK':'GBOD'@'GHOST'.'GPROVIDER'#'
  178. PARSE UPPER VAR Greetz_this_line '@'GREAD_HOST'#'
  179. PARSE VAR Greetz_this_line '#'PERSONAL_MESSAGE
  180.  
  181. IF PERSONAL_MESSAGE = " " then GREETING = GREETING
  182. IF PERSONAL_MESSAGE ~= " " then GREETING = PERSONAL_MESSAGE
  183.  
  184.    IF GREADNICK="*" & GBOD="*" & GHOST="*" & GPROVIDER="*" then call GREETME 
  185.    IF GREADNICK="*" & GBOD="*" & GHOST="*" & GPROVIDER=COMPANY then call GREETME
  186.    IF GREADNICK="*" & GBOD="*" & GHOST=BLANK & GPROVIDER="*" then call GREETME
  187.    IF GREADNICK="*" & GBOD="*" & GREAD_HOST=USER_HOST & GPROVIDER=COMPANY then call GREETME
  188.    IF GREADNICK="*" & GBOD=LOGINAME & GHOST="*" & GPROVIDER="*" then call GREETME
  189.    IF GREADNICK="*" & GBOD=LOGINAME & GHOST="*" & GPROVIDER=COMPANY then call GREETME
  190.    IF GREADNICK="*" & GBOD=LOGINAME & GREAD_HOST=USER_HOST & GPROVIDER="*" then call GREETME
  191.    IF GREADNICK="*" & GBOD=LOGINAME & GREAD_HOST=USER_HOST & GPROVIDER=COMPANY then call GREETME
  192.    IF GREADNICK=CHECKNICK & GBOD="*" & GHOST="*" & GPROVIDER=COMPANY then call GREETME
  193.    IF GREADNICK=CHECKNICK & GBOD="*" & GHOST="*" & GPROVIDER="*" then call GREETME
  194.    IF GREADNICK=CHECKNICK & GBOD="*" & GREAD_HOST=USER_HOST & GPROVIDER=COMPANY then call GREETME
  195.    IF GREADNICK=CHECKNICK & GBOD="*" & GREAD_GHOST=USER_HOST & GPROVIDER="*" then call GREETME
  196.    IF GREADNICK=CHECKNICK & GBOD=LOGINAME & GHOST="*" & GPROVIDER="*" then call GREETME
  197.    IF GREADNICK=CHECKNICK & GBOD=LOGINAME & GREAD_HOST=USER_HOST & GPROVIDER="*" then call GREETME
  198.    IF GREADNICK=CHECKNICK & GBOD=LOGINAME & GHOST="*" & GPROVIDER=COMPANY then call GREETME
  199.    IF GREADNICK=CHECKNICK & GBOD=LOGINAME & GREAD_HOST=USER_HOST & GPROVIDER=COMPANY then call GREETME
  200.  
  201. END
  202.  
  203. CLOSE(temp)
  204.  
  205. EXIT
  206.  
  207.  
  208. OPME: PROCEDURE EXPOSE CHANNEL CHAN1 CHAN2 CHAN3 USER OP_NOTIFY CHANUP
  209.  
  210. DOIT = "YES"
  211. IF (CHANUP = CHAN1 | CHANUP = CHAN2 | CHANUP = CHAN3) then DOIT = "NO"
  212.  
  213.  
  214. IF DOIT = "YES" then do
  215.  "SAY /op" CHANNEL USER
  216.  IF OP_NOTIFY = "YES" then "echo P="d2c(27)"b«AutoOP»" "You have just AUTOPED®" USER
  217.  end
  218.  
  219. RETURN
  220.  
  221.  
  222. GREETME: PROCEDURE EXPOSE CHANNEL USER GREET_NOTIFY PERSONAL_MESSAGE GREETING
  223.  
  224.  IF PERSONAL_MESSAGE = " " then "SAY /msg" CHANNEL GREETING USER
  225.  IF PERSONAL_MESSAGE ~= " " then "SAY /msg" CHANNEL GREETING
  226.  IF GREET_NOTIFY = "YES" & PERSONAL_MESSAGE = " " then "echo P="d2c(27)"b«AutoGreet»" "You have just AUTOGREETED®" USER "with the greeting" GREETING
  227.  IF GREET_NOTIFY = "YES" & PERSONAL_MESSAGE ~= " " then "echo P="d2c(27)"b«AutoGreet»" "You have just AUTOGREETED®" USER "with the text" PERSONAL_MESSAGE
  228.  
  229. RETURN
  230.  
  231.  
  232. KILLME: PROCEDURE EXPOSE CHANNEL USER KILL_NOTIFY KILL_MESSAGE KILLTYPE USER_HOST
  233.  
  234.  "SAY /kick" CHANNEL USER KILL_MESSAGE
  235.  IF KILLTYPE = "NICK" then "SAY /ban" CHANNEL USER"@"USER_HOST
  236.  IF KILLTYPE = "HOST" then "SAY /ban" CHANNEL "*@"USER_HOST
  237.  IF KILL_NOTIFY = "YES" & KILL_MESSAGE ~= " " then "echo P="d2c(27)"b«Kick'n'Ban»" "You have AUTOKICK'N'BANNED®" USER "with the message" KILL_MESSAGE
  238.  IF KILL_NOTIFY = "YES" & KILL_MESSAGE = " " then "echo P="d2c(27)"b«Kick'n'Ban»" "You have AUTOKICK'N'BANNED®" USER "with your default kick reason."
  239.  
  240. RETURN 
  241.